﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, XmlType(Namespace="http://www.onvif.org/ver10/schema"), GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough, DesignerCategory("code")]
    public class Capabilities
    {
        private AnalyticsCapabilities analyticsField;
        private XmlAttribute[] anyAttrField;
        private DeviceCapabilities deviceField;
        private EventCapabilities eventsField;
        private CapabilitiesExtension extensionField;
        private ImagingCapabilities imagingField;
        private MediaCapabilities mediaField;
        private PTZCapabilities pTZField;

        [XmlElement(Order=0)]
        public AnalyticsCapabilities Analytics
        {
            get
            {
                return this.analyticsField;
            }
            set
            {
                this.analyticsField = value;
            }
        }

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(Order=1)]
        public DeviceCapabilities Device
        {
            get
            {
                return this.deviceField;
            }
            set
            {
                this.deviceField = value;
            }
        }

        [XmlElement(Order=2)]
        public EventCapabilities Events
        {
            get
            {
                return this.eventsField;
            }
            set
            {
                this.eventsField = value;
            }
        }

        [XmlElement(Order=6)]
        public CapabilitiesExtension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement(Order=3)]
        public ImagingCapabilities Imaging
        {
            get
            {
                return this.imagingField;
            }
            set
            {
                this.imagingField = value;
            }
        }

        [XmlElement(Order=4)]
        public MediaCapabilities Media
        {
            get
            {
                return this.mediaField;
            }
            set
            {
                this.mediaField = value;
            }
        }

        [XmlElement(Order=5)]
        public PTZCapabilities PTZ
        {
            get
            {
                return this.pTZField;
            }
            set
            {
                this.pTZField = value;
            }
        }
    }
}

